package bbalgae.swing.outline;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

/*
 * JOptionPane
 * 다양한 용도에 사용할 수 있도록 미리 정의된 대화상자를 의미 
 * 메세지 표시 : showMessageDialog
 * 사용자의 확인을 물음 : showConfirmDialog
 * 사용자의 입력을 받음 : showInputDialog
 * 위 세가지를 모두 함 : showOptionDialog
 * 
 * JOpotionPane은 static 메소드를 가지고 있음 따라서, 객체 생성없이 바로 호출해서 사용가능
 * JFrame에 종속/비종속적 대화상자를 작성 가능 
 * 대화상자에는 바로 사용가능한 4가지 아이콘을 기본적으로 제공함
 * 
 * showMessage
 * 	간단한 메세지를 출력
 * 	showMessageDialog(부모프레임,메세지,제목,종류)
 * 메세지는 종류는 다음과 같음
 * JOptionPane.INFORMATION_MESSAGE
 * JOptionPane.WARNING_MESSAGE
 * JOptionPane.ERROR_MESSAGE
 * JOptionPane.QUESTION_MESSAGE
 * JOptionPane.PLAIN_MESSAGE
 * 
 * showConfirmDialog
 * 이 대화상자에서는 yes,no,cancel,ok 버튼등을 표시
 * JOptionPane.YES_NO_OPTION
 * JOptionPane.CANCEL OPTION
 * JOptionPane.NO_OPTION
 * JOptionPane.OK_OPTION
 * JOptionPane.CLOSED_OPTION 대화상자의 'X'단추를 클릭했을때 반환되는 정수 값임
 * 
 * showInputDialog
 * 	사용자로부터 입력을 받게하는 대화상자를 표시
 * 값을 입력하고 OK누르면 : 입력값 전달
 * 값을 입력하고 CANCEL누르면 : null 값 전달
 * 값을 입력안하고 OK누르면 : 공백값 전달
 * 
 */
public class J20_BasicConponent extends JFrame {

	private JPanel contentPane;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					J20_BasicConponent frame = new J20_BasicConponent();
					frame.setVisible(true);m   
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public J20_BasicConponent() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);

		JPanel panel_1 = new JPanel();
		contentPane.add(panel_1, BorderLayout.EAST);

		JButton btnNewButton_3 = new JButton("New button");
		panel_1.add(btnNewButton_3);

		JPanel panel_2 = new JPanel();
		contentPane.add(panel_2, BorderLayout.NORTH);

		JButton btnNewButton_1 = new JButton("ShowMessage");
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JOptionPane.showMessageDialog(null, "대화상자", "showMessage",
						JOptionPane.INFORMATION_MESSAGE);
				JOptionPane.showMessageDialog(null, "정보 대화상자", "showMessage",
						JOptionPane.INFORMATION_MESSAGE);
				JOptionPane.showMessageDialog(null, "경고대화상자", "showMessage",
						JOptionPane.WARNING_MESSAGE);
				JOptionPane.showMessageDialog(null, "의문 대화상자", "showMessage",
						JOptionPane.QUESTION_MESSAGE);
				JOptionPane.showMessageDialog(null, "오류 대화상자", "showMessage",
						JOptionPane.ERROR_MESSAGE);
				JOptionPane.showMessageDialog(null, "단순 대화상자", "showMessage",
						JOptionPane.PLAIN_MESSAGE);

			}
		});
		panel_2.add(btnNewButton_1);

		JPanel panel_3 = new JPanel();
		contentPane.add(panel_3, BorderLayout.CENTER);

		JButton btnNewButton = new JButton("confirmmessage");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				int result = JOptionPane.showConfirmDialog(null, "여친이 있냐", "지금확인중",
						JOptionPane.YES_NO_CANCEL_OPTION,
						JOptionPane.WARNING_MESSAGE);
				if(result ==JOptionPane.YES_OPTION ){
					JOptionPane.showMessageDialog(null, "하이");
				}
				else if(result ==JOptionPane.NO_OPTION ){
					JOptionPane.showMessageDialog(null, "바이");
				}
				else 	if(result ==JOptionPane.CANCEL_OPTION ){
					JOptionPane.showMessageDialog(null, "ㅗ");
				}
					
					
				JOptionPane.showConfirmDialog(null, "여친이 있냐", "지금확인중",
						JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
			}
		});
		
				JPanel panel = new JPanel();
				panel_3.add(panel);
				
						JButton btnNewButton_2 = new JButton("New button");
						panel.add(btnNewButton_2);
		panel_3.add(btnNewButton);

		JPanel panel_4 = new JPanel();
		contentPane.add(panel_4, BorderLayout.SOUTH);

		JButton btnNewButton_4 = new JButton("input message");
		btnNewButton_4.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String name = JOptionPane.showInputDialog(null,"당신의 이름으 입력하세요","입력하세요",JOptionPane.INFORMATION_MESSAGE);
				
				System.out.println(name);
			}
		});
		panel_4.add(btnNewButton_4);
	}

}
